1. Technical Field
The present invention relates generally to an improved method to manage logical volumes and, in particular, to a method and an apparatus for providing a plug-ins in a logical volume management system. Still more particularly, the present invention provides a mechanism to allow Independent Software Vendors (ISVs) to write binary plug-in modules to expand the capabilities of a logical volume manager.
2. Description of the Related Art
The Logical Volume Manager (LVM) is a subsystem for on-line disk storage management that adds an additional layer between the physical devices and the block I/O interface in the kernel of the operating system to allow a logical view on storage. For systems without an LVM, each of the partitions that is usable by the operating system is assigned a drive letter, such as “C:” or “F:”, producing a correlating drive letter for each partition on a disk in the computer system. The process which assigns these letters is commonly known.
For systems with an LVM, a drive letter may be mapped instead to a logical volume which may contain one or more partitions. The process by which partitions are combined into a single entity is known generically as “aggregation.”
There are various forms of aggregation, such as Drive Linking and software Redundant Array of Independent Disks (RAID). Each feature, i.e. a function that may be performed on a partition, aggregate or volume, offered by the LVM for use on a volume is a layer in the LVM. The input to a layer has the same form and structure as the output from a layer. The layers being used on a volume form a stack, and I/O requests are processed from the top most layer down the stack to the bottom most layer. Typically, the bottom most layer is a special layer called the Pass Through layer.
U.S. patent application Ser. No. 09/561,184 (now abandoned), which is hereby incorporated by reference, discloses a multi-layer logical volume management system for an LVM in the OS/2 operating system. Similar systems can be extended to handle multiple levels of aggregation in other operating systems.
Prior art LVMs use a layered model in which each feature that can be applied to a partition is a layer in the model. Each layer accepts the same inputs and outputs and the output of one layer may be used as the input to another layer. Thus, the features in use on a volume for a stack. Operations performed on the volume start at the top of the stack and progress down through each layer until either the operation has been completed or it is passed on to an operating system component below the LVM. This model is static and requires that the source code to LVM be modified in order for LVM to be extended in any fashion.
Therefore, it would be advantageous to have a method and an apparatus to enhance the logical volume management model to allow third parties to create modules that the LVM will recognize to extend its capabilities.